/**
 * 列表型数据 -> 树形数据
 * @params
 * {list} Array          列表数据
 * { rootValue } Number  根节点的pid
 * */
export const translateListToTreeeData = (list, rootValue) => {
  // 核心逻辑: 遍历列表数据, 找到父级部门, 递归思想(找规律), 生成树形数据
  // 结论: 子级部门的pid === 父级部门的id
  // 递归: 一般处理未知层级的数据
  // 特点: 函数内自己调用自己  / 要有结束条件(出口) - 参数不能重复

  const arr = [] // 存储最终的树形数据
  list.forEach(item => {
    // 确定一级部门
    if (item.pid === rootValue) {
      // 根据规律确定二级 / 三级 / 四级
      // 查找原则: 通过父级确定子级 -> 传入父级部门的id (子级部门的pid === 父级部门的id)
      const children = translateListToTreeeData(list, item.id)
      // 如果子级部门存在的 数组长度 大于0,  将子级部门添加到父级部门身上
      if (children.length) item.children = children
      arr.push(item)
    }
  })

  return arr // 返回树形数据

  // const arr = [] // 存储最终的树形数据
  // // 遍历列表数据
  // list.forEach(item => {
  //   // 获取/确定一级部门
  //   if (item.pid === rootValue) {
  //     console.log('一级部门', item)
  //     // 获取/确定二级部门
  //     list.forEach(citem => {
  //       if (citem.pid === item.id) {
  //         console.log('二级部门', citem)
  //         item.children = item.children || []
  //         item.children.push(citem)
  //       }
  //     })

  //     arr.push(item)
  //   }
  // })

  // return arr
}

